le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
eq(0, 0) → true
eq(0, s(y)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
if(true, x, y) → x
if(false, x, y) → y
minsort(nil) → nil
minsort(cons(x, y)) → cons(min(x, y), minsort(del(min(x, y), cons(x, y))))
min(x, nil) → x
min(x, cons(y, z)) → if(le(x, y), min(x, z), min(y, z))
del(x, nil) → nil
del(x, cons(y, z)) → if(eq(x, y), z, cons(y, del(x, z)))
↳ QTRS
↳ Overlay + Local Confluence
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
eq(0, 0) → true
eq(0, s(y)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
if(true, x, y) → x
if(false, x, y) → y
minsort(nil) → nil
minsort(cons(x, y)) → cons(min(x, y), minsort(del(min(x, y), cons(x, y))))
min(x, nil) → x
min(x, cons(y, z)) → if(le(x, y), min(x, z), min(y, z))
del(x, nil) → nil
del(x, cons(y, z)) → if(eq(x, y), z, cons(y, del(x, z)))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
eq(0, 0) → true
eq(0, s(y)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
if(true, x, y) → x
if(false, x, y) → y
minsort(nil) → nil
minsort(cons(x, y)) → cons(min(x, y), minsort(del(min(x, y), cons(x, y))))
min(x, nil) → x
min(x, cons(y, z)) → if(le(x, y), min(x, z), min(y, z))
del(x, nil) → nil
del(x, cons(y, z)) → if(eq(x, y), z, cons(y, del(x, z)))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
minsort(nil)
minsort(cons(x0, x1))
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
MIN(x, cons(y, z)) → MIN(y, z)
MIN(x, cons(y, z)) → MIN(x, z)
MINSORT(cons(x, y)) → MIN(x, y)
MIN(x, cons(y, z)) → LE(x, y)
DEL(x, cons(y, z)) → EQ(x, y)
MINSORT(cons(x, y)) → DEL(min(x, y), cons(x, y))
EQ(s(x), s(y)) → EQ(x, y)
MIN(x, cons(y, z)) → IF(le(x, y), min(x, z), min(y, z))
MINSORT(cons(x, y)) → MINSORT(del(min(x, y), cons(x, y)))
DEL(x, cons(y, z)) → DEL(x, z)
DEL(x, cons(y, z)) → IF(eq(x, y), z, cons(y, del(x, z)))
LE(s(x), s(y)) → LE(x, y)
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
eq(0, 0) → true
eq(0, s(y)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
if(true, x, y) → x
if(false, x, y) → y
minsort(nil) → nil
minsort(cons(x, y)) → cons(min(x, y), minsort(del(min(x, y), cons(x, y))))
min(x, nil) → x
min(x, cons(y, z)) → if(le(x, y), min(x, z), min(y, z))
del(x, nil) → nil
del(x, cons(y, z)) → if(eq(x, y), z, cons(y, del(x, z)))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
minsort(nil)
minsort(cons(x0, x1))
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
MIN(x, cons(y, z)) → MIN(y, z)
MIN(x, cons(y, z)) → MIN(x, z)
MINSORT(cons(x, y)) → MIN(x, y)
MIN(x, cons(y, z)) → LE(x, y)
DEL(x, cons(y, z)) → EQ(x, y)
MINSORT(cons(x, y)) → DEL(min(x, y), cons(x, y))
EQ(s(x), s(y)) → EQ(x, y)
MIN(x, cons(y, z)) → IF(le(x, y), min(x, z), min(y, z))
MINSORT(cons(x, y)) → MINSORT(del(min(x, y), cons(x, y)))
DEL(x, cons(y, z)) → DEL(x, z)
DEL(x, cons(y, z)) → IF(eq(x, y), z, cons(y, del(x, z)))
LE(s(x), s(y)) → LE(x, y)
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
eq(0, 0) → true
eq(0, s(y)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
if(true, x, y) → x
if(false, x, y) → y
minsort(nil) → nil
minsort(cons(x, y)) → cons(min(x, y), minsort(del(min(x, y), cons(x, y))))
min(x, nil) → x
min(x, cons(y, z)) → if(le(x, y), min(x, z), min(y, z))
del(x, nil) → nil
del(x, cons(y, z)) → if(eq(x, y), z, cons(y, del(x, z)))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
minsort(nil)
minsort(cons(x0, x1))
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
EQ(s(x), s(y)) → EQ(x, y)
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
eq(0, 0) → true
eq(0, s(y)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
if(true, x, y) → x
if(false, x, y) → y
minsort(nil) → nil
minsort(cons(x, y)) → cons(min(x, y), minsort(del(min(x, y), cons(x, y))))
min(x, nil) → x
min(x, cons(y, z)) → if(le(x, y), min(x, z), min(y, z))
del(x, nil) → nil
del(x, cons(y, z)) → if(eq(x, y), z, cons(y, del(x, z)))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
minsort(nil)
minsort(cons(x0, x1))
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
EQ(s(x), s(y)) → EQ(x, y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
minsort(nil)
minsort(cons(x0, x1))
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
minsort(nil)
minsort(cons(x0, x1))
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
EQ(s(x), s(y)) → EQ(x, y)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
DEL(x, cons(y, z)) → DEL(x, z)
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
eq(0, 0) → true
eq(0, s(y)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
if(true, x, y) → x
if(false, x, y) → y
minsort(nil) → nil
minsort(cons(x, y)) → cons(min(x, y), minsort(del(min(x, y), cons(x, y))))
min(x, nil) → x
min(x, cons(y, z)) → if(le(x, y), min(x, z), min(y, z))
del(x, nil) → nil
del(x, cons(y, z)) → if(eq(x, y), z, cons(y, del(x, z)))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
minsort(nil)
minsort(cons(x0, x1))
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
DEL(x, cons(y, z)) → DEL(x, z)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
minsort(nil)
minsort(cons(x0, x1))
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
minsort(nil)
minsort(cons(x0, x1))
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
DEL(x, cons(y, z)) → DEL(x, z)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
LE(s(x), s(y)) → LE(x, y)
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
eq(0, 0) → true
eq(0, s(y)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
if(true, x, y) → x
if(false, x, y) → y
minsort(nil) → nil
minsort(cons(x, y)) → cons(min(x, y), minsort(del(min(x, y), cons(x, y))))
min(x, nil) → x
min(x, cons(y, z)) → if(le(x, y), min(x, z), min(y, z))
del(x, nil) → nil
del(x, cons(y, z)) → if(eq(x, y), z, cons(y, del(x, z)))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
minsort(nil)
minsort(cons(x0, x1))
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
LE(s(x), s(y)) → LE(x, y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
minsort(nil)
minsort(cons(x0, x1))
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
minsort(nil)
minsort(cons(x0, x1))
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
LE(s(x), s(y)) → LE(x, y)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
MIN(x, cons(y, z)) → MIN(x, z)
MIN(x, cons(y, z)) → MIN(y, z)
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
eq(0, 0) → true
eq(0, s(y)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
if(true, x, y) → x
if(false, x, y) → y
minsort(nil) → nil
minsort(cons(x, y)) → cons(min(x, y), minsort(del(min(x, y), cons(x, y))))
min(x, nil) → x
min(x, cons(y, z)) → if(le(x, y), min(x, z), min(y, z))
del(x, nil) → nil
del(x, cons(y, z)) → if(eq(x, y), z, cons(y, del(x, z)))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
minsort(nil)
minsort(cons(x0, x1))
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
MIN(x, cons(y, z)) → MIN(x, z)
MIN(x, cons(y, z)) → MIN(y, z)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
minsort(nil)
minsort(cons(x0, x1))
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
minsort(nil)
minsort(cons(x0, x1))
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
MIN(x, cons(y, z)) → MIN(y, z)
MIN(x, cons(y, z)) → MIN(x, z)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
MINSORT(cons(x, y)) → MINSORT(del(min(x, y), cons(x, y)))
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
eq(0, 0) → true
eq(0, s(y)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
if(true, x, y) → x
if(false, x, y) → y
minsort(nil) → nil
minsort(cons(x, y)) → cons(min(x, y), minsort(del(min(x, y), cons(x, y))))
min(x, nil) → x
min(x, cons(y, z)) → if(le(x, y), min(x, z), min(y, z))
del(x, nil) → nil
del(x, cons(y, z)) → if(eq(x, y), z, cons(y, del(x, z)))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
minsort(nil)
minsort(cons(x0, x1))
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
MINSORT(cons(x, y)) → MINSORT(del(min(x, y), cons(x, y)))
min(x, nil) → x
min(x, cons(y, z)) → if(le(x, y), min(x, z), min(y, z))
del(x, cons(y, z)) → if(eq(x, y), z, cons(y, del(x, z)))
eq(0, 0) → true
eq(0, s(y)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
del(x, nil) → nil
if(true, x, y) → x
if(false, x, y) → y
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
minsort(nil)
minsort(cons(x0, x1))
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
minsort(nil)
minsort(cons(x0, x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
MINSORT(cons(x, y)) → MINSORT(del(min(x, y), cons(x, y)))
min(x, nil) → x
min(x, cons(y, z)) → if(le(x, y), min(x, z), min(y, z))
del(x, cons(y, z)) → if(eq(x, y), z, cons(y, del(x, z)))
eq(0, 0) → true
eq(0, s(y)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
del(x, nil) → nil
if(true, x, y) → x
if(false, x, y) → y
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
MINSORT(cons(x, y)) → MINSORT(if(eq(min(x, y), x), y, cons(x, del(min(x, y), y))))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
MINSORT(cons(x, y)) → MINSORT(if(eq(min(x, y), x), y, cons(x, del(min(x, y), y))))
min(x, nil) → x
min(x, cons(y, z)) → if(le(x, y), min(x, z), min(y, z))
del(x, cons(y, z)) → if(eq(x, y), z, cons(y, del(x, z)))
eq(0, 0) → true
eq(0, s(y)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
del(x, nil) → nil
if(true, x, y) → x
if(false, x, y) → y
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x0), cons(x1, x2), cons(x0, del(min(x0, cons(x1, x2)), cons(x1, x2)))))
MINSORT(cons(x0, nil)) → MINSORT(if(eq(x0, x0), nil, cons(x0, del(min(x0, nil), nil))))
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(min(x0, cons(x1, x2)), x0), cons(x1, x2), cons(x0, del(if(le(x0, x1), min(x0, x2), min(x1, x2)), cons(x1, x2)))))
MINSORT(cons(x0, nil)) → MINSORT(if(eq(min(x0, nil), x0), nil, cons(x0, del(x0, nil))))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(min(x0, cons(x1, x2)), x0), cons(x1, x2), cons(x0, del(if(le(x0, x1), min(x0, x2), min(x1, x2)), cons(x1, x2)))))
MINSORT(cons(x0, nil)) → MINSORT(if(eq(min(x0, nil), x0), nil, cons(x0, del(x0, nil))))
MINSORT(cons(x0, nil)) → MINSORT(if(eq(x0, x0), nil, cons(x0, del(min(x0, nil), nil))))
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x0), cons(x1, x2), cons(x0, del(min(x0, cons(x1, x2)), cons(x1, x2)))))
min(x, nil) → x
min(x, cons(y, z)) → if(le(x, y), min(x, z), min(y, z))
del(x, cons(y, z)) → if(eq(x, y), z, cons(y, del(x, z)))
eq(0, 0) → true
eq(0, s(y)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
del(x, nil) → nil
if(true, x, y) → x
if(false, x, y) → y
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x0), cons(x1, x2), cons(x0, if(eq(min(x0, cons(x1, x2)), x1), x2, cons(x1, del(min(x0, cons(x1, x2)), x2))))))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(min(x0, cons(x1, x2)), x0), cons(x1, x2), cons(x0, del(if(le(x0, x1), min(x0, x2), min(x1, x2)), cons(x1, x2)))))
MINSORT(cons(x0, nil)) → MINSORT(if(eq(min(x0, nil), x0), nil, cons(x0, del(x0, nil))))
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x0), cons(x1, x2), cons(x0, if(eq(min(x0, cons(x1, x2)), x1), x2, cons(x1, del(min(x0, cons(x1, x2)), x2))))))
MINSORT(cons(x0, nil)) → MINSORT(if(eq(x0, x0), nil, cons(x0, del(min(x0, nil), nil))))
min(x, nil) → x
min(x, cons(y, z)) → if(le(x, y), min(x, z), min(y, z))
del(x, cons(y, z)) → if(eq(x, y), z, cons(y, del(x, z)))
eq(0, 0) → true
eq(0, s(y)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
del(x, nil) → nil
if(true, x, y) → x
if(false, x, y) → y
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
MINSORT(cons(x0, nil)) → MINSORT(if(eq(x0, x0), nil, cons(x0, nil)))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
MINSORT(cons(x0, nil)) → MINSORT(if(eq(x0, x0), nil, cons(x0, nil)))
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(min(x0, cons(x1, x2)), x0), cons(x1, x2), cons(x0, del(if(le(x0, x1), min(x0, x2), min(x1, x2)), cons(x1, x2)))))
MINSORT(cons(x0, nil)) → MINSORT(if(eq(min(x0, nil), x0), nil, cons(x0, del(x0, nil))))
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x0), cons(x1, x2), cons(x0, if(eq(min(x0, cons(x1, x2)), x1), x2, cons(x1, del(min(x0, cons(x1, x2)), x2))))))
min(x, nil) → x
min(x, cons(y, z)) → if(le(x, y), min(x, z), min(y, z))
del(x, cons(y, z)) → if(eq(x, y), z, cons(y, del(x, z)))
eq(0, 0) → true
eq(0, s(y)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
del(x, nil) → nil
if(true, x, y) → x
if(false, x, y) → y
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x0), cons(x1, x2), cons(x0, del(if(le(x0, x1), min(x0, x2), min(x1, x2)), cons(x1, x2)))))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
MINSORT(cons(x0, nil)) → MINSORT(if(eq(x0, x0), nil, cons(x0, nil)))
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x0), cons(x1, x2), cons(x0, del(if(le(x0, x1), min(x0, x2), min(x1, x2)), cons(x1, x2)))))
MINSORT(cons(x0, nil)) → MINSORT(if(eq(min(x0, nil), x0), nil, cons(x0, del(x0, nil))))
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x0), cons(x1, x2), cons(x0, if(eq(min(x0, cons(x1, x2)), x1), x2, cons(x1, del(min(x0, cons(x1, x2)), x2))))))
min(x, nil) → x
min(x, cons(y, z)) → if(le(x, y), min(x, z), min(y, z))
del(x, cons(y, z)) → if(eq(x, y), z, cons(y, del(x, z)))
eq(0, 0) → true
eq(0, s(y)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
del(x, nil) → nil
if(true, x, y) → x
if(false, x, y) → y
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
MINSORT(cons(x0, nil)) → MINSORT(if(eq(x0, x0), nil, cons(x0, del(x0, nil))))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
MINSORT(cons(x0, nil)) → MINSORT(if(eq(x0, x0), nil, cons(x0, nil)))
MINSORT(cons(x0, nil)) → MINSORT(if(eq(x0, x0), nil, cons(x0, del(x0, nil))))
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x0), cons(x1, x2), cons(x0, del(if(le(x0, x1), min(x0, x2), min(x1, x2)), cons(x1, x2)))))
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x0), cons(x1, x2), cons(x0, if(eq(min(x0, cons(x1, x2)), x1), x2, cons(x1, del(min(x0, cons(x1, x2)), x2))))))
min(x, nil) → x
min(x, cons(y, z)) → if(le(x, y), min(x, z), min(y, z))
del(x, cons(y, z)) → if(eq(x, y), z, cons(y, del(x, z)))
eq(0, 0) → true
eq(0, s(y)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
del(x, nil) → nil
if(true, x, y) → x
if(false, x, y) → y
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x0), cons(x1, x2), cons(x0, if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x1), x2, cons(x1, del(min(x0, cons(x1, x2)), x2))))))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
MINSORT(cons(x0, nil)) → MINSORT(if(eq(x0, x0), nil, cons(x0, nil)))
MINSORT(cons(x0, nil)) → MINSORT(if(eq(x0, x0), nil, cons(x0, del(x0, nil))))
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x0), cons(x1, x2), cons(x0, if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x1), x2, cons(x1, del(min(x0, cons(x1, x2)), x2))))))
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x0), cons(x1, x2), cons(x0, del(if(le(x0, x1), min(x0, x2), min(x1, x2)), cons(x1, x2)))))
min(x, nil) → x
min(x, cons(y, z)) → if(le(x, y), min(x, z), min(y, z))
del(x, cons(y, z)) → if(eq(x, y), z, cons(y, del(x, z)))
eq(0, 0) → true
eq(0, s(y)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
del(x, nil) → nil
if(true, x, y) → x
if(false, x, y) → y
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x0), cons(x1, x2), cons(x0, if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x1), x2, cons(x1, del(if(le(x0, x1), min(x0, x2), min(x1, x2)), x2))))))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
MINSORT(cons(x0, nil)) → MINSORT(if(eq(x0, x0), nil, cons(x0, nil)))
MINSORT(cons(x0, nil)) → MINSORT(if(eq(x0, x0), nil, cons(x0, del(x0, nil))))
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x0), cons(x1, x2), cons(x0, if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x1), x2, cons(x1, del(min(x0, cons(x1, x2)), x2))))))
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x0), cons(x1, x2), cons(x0, if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x1), x2, cons(x1, del(if(le(x0, x1), min(x0, x2), min(x1, x2)), x2))))))
min(x, nil) → x
min(x, cons(y, z)) → if(le(x, y), min(x, z), min(y, z))
del(x, cons(y, z)) → if(eq(x, y), z, cons(y, del(x, z)))
eq(0, 0) → true
eq(0, s(y)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
del(x, nil) → nil
if(true, x, y) → x
if(false, x, y) → y
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
MINSORT(cons(x0, nil)) → MINSORT(if(eq(x0, x0), nil, cons(x0, nil)))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
MINSORT(cons(x0, nil)) → MINSORT(if(eq(x0, x0), nil, cons(x0, nil)))
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x0), cons(x1, x2), cons(x0, if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x1), x2, cons(x1, del(min(x0, cons(x1, x2)), x2))))))
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x0), cons(x1, x2), cons(x0, if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x1), x2, cons(x1, del(if(le(x0, x1), min(x0, x2), min(x1, x2)), x2))))))
min(x, nil) → x
min(x, cons(y, z)) → if(le(x, y), min(x, z), min(y, z))
del(x, cons(y, z)) → if(eq(x, y), z, cons(y, del(x, z)))
eq(0, 0) → true
eq(0, s(y)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
del(x, nil) → nil
if(true, x, y) → x
if(false, x, y) → y
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x0), cons(x1, x2), cons(x0, if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x1), x2, cons(x1, del(if(le(x0, x1), min(x0, x2), min(x1, x2)), x2))))))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ MNOCProof
MINSORT(cons(x0, nil)) → MINSORT(if(eq(x0, x0), nil, cons(x0, nil)))
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x0), cons(x1, x2), cons(x0, if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x1), x2, cons(x1, del(if(le(x0, x1), min(x0, x2), min(x1, x2)), x2))))))
min(x, nil) → x
min(x, cons(y, z)) → if(le(x, y), min(x, z), min(y, z))
del(x, cons(y, z)) → if(eq(x, y), z, cons(y, del(x, z)))
eq(0, 0) → true
eq(0, s(y)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
del(x, nil) → nil
if(true, x, y) → x
if(false, x, y) → y
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
if(true, x0, x1)
if(false, x0, x1)
min(x0, nil)
min(x0, cons(x1, x2))
del(x0, nil)
del(x0, cons(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Rewriting
↳ QDP
↳ Narrowing
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ Rewriting
↳ QDP
↳ MNOCProof
↳ QDP
MINSORT(cons(x0, nil)) → MINSORT(if(eq(x0, x0), nil, cons(x0, nil)))
MINSORT(cons(x0, cons(x1, x2))) → MINSORT(if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x0), cons(x1, x2), cons(x0, if(eq(if(le(x0, x1), min(x0, x2), min(x1, x2)), x1), x2, cons(x1, del(if(le(x0, x1), min(x0, x2), min(x1, x2)), x2))))))
min(x, nil) → x
min(x, cons(y, z)) → if(le(x, y), min(x, z), min(y, z))
del(x, cons(y, z)) → if(eq(x, y), z, cons(y, del(x, z)))
eq(0, 0) → true
eq(0, s(y)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
del(x, nil) → nil
if(true, x, y) → x
if(false, x, y) → y
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)